#include "./photo.h"

/** Classe entidade para armazenar Photo. */
Photo::Photo(){
    identifier = Identifier();
    date = Date();
    speed = Speed();
    openness = Openness();
    iso = ISO();
}

/** Classe entidade para armazenar Photo. */
Photo::Photo(Identifier identifier, Date date,
             Speed speed, Openness openness, ISO iso)
            :identifier(identifier), date(date),
             speed(speed), openness(openness), iso(iso){
}

/** Funcao de GET para identificador de foto. */
Identifier   Photo::getIdentifier() const{
    return identifier;
};

/** Funcao de SET para identificador de foto. */
void         Photo::setIdentifier(const Identifier identifier){
    this->identifier = identifier;
};

/** Funcao de GET para data de foto. */
Date         Photo::getDate() const{
    return date;
};

/** Funcao de SET para data de foto. */
void         Photo::setDate(const Date date){
    this->date = date;
};

/** Funcao de GET para velocidade de foto. */
Speed        Photo::getSpeed() const{
    return speed;
};

/** Funcao de SET para velocidade de foto. */
void         Photo::setSpeed(const Speed speed){
    this->speed = speed;
};

/** Funcao de GET para abertura de foto. */
Openness     Photo::getOpenness() const{
    return openness;
};

/** Funcao de SET para abertura de foto. */
void         Photo::setOpenness(const Openness openness){
    this->openness = openness;
};

/** Funcao de GET para ISO de foto. */
ISO          Photo::getISO() const{
    return iso;
};

/** Funcao de SET para ISO de foto. */
void         Photo::setISO(const ISO iso){
    this->iso = iso;
};


/**************************************************************/
/** Classe entidade para armazenar Album. */
Album::Album(Identifier identifier, Description description,
             AccessLevel accesslevel, Price price)
             :identifier(identifier), description(description),
             accesslevel(accesslevel), price(price){
};

/** Funcao de GET para identificador de album. */
Identifier      Album::getIdentifier() const{
    return identifier;
};

/** Funcao de SET para identificador de album. */
void            Album::setIdentifier(const Identifier identifier){
    this->identifier = identifier;
};

/** Funcao de GET para descricao de album. */
Description     Album::getDescription() const{
    return description;
};

/** Funcao de SET para descricao de album. */
void            Album::setDescription(const Description description){
    this->description = description;
};

/** Funcao de GET para nivel de acesso de album. */
AccessLevel     Album::getAccessLevel() const{
    return accesslevel;
};

/** Funcao de SET para nivel de acesso de album. */
void            Album::setAccessLevel(const AccessLevel accesslevel){
    this->accesslevel = accesslevel;
};

/** Funcao de GET para preco de album. */
Price           Album::getPrice() const{
    return price;
};

/** Funcao de SET para preco de album. */
void            Album::setPrice(const Price price){
    this->price = price;
};
